🎖️GitЯра🎖️
src/helpers/RegionMap.h 890a2e2cffa98dea3ca88db3c3aba72ef23ff3f7 (890a2e2c) Text, 2.00 KB
Tff7b72#Tff7b72pragma once
Tff7b72#Tff7b72include T8b949e<Arduino.h> T8b949e// needed for PlatformIO
Tff7b72#Tff7b72include T8b949e<Packet.h>
Tff7b72#Tff7b72include T8b949e"TransportKeyStore.h"
Tff7b72#Tff7b72ifndef MAX_REGION_ENTRIES
Tff7b72#Tff7b72define MAX_REGION_ENTRIES 32
Tff7b72#Tff7b72endif
Tff7b72#Tff7b72define REGION_DENY_FLOOD 0x01
Tff7b72#Tff7b72define REGION_DENY_DIRECT 0x02 T8b949e// reserved for future
Tff7b72struct T56d364RegionEntry Tb4b4b4{
Tffa657uint16_t Te6edf3idTb4b4b4;
Tffa657uint16_t Te6edf3parentTb4b4b4;
Tffa657uint8_t Te6edf3flagsTb4b4b4;
Tffa657char Te6edf3nameTb4b4b4[T79c0ff31Tb4b4b4]Tb4b4b4;
Tffa657bool Td2a8ffisWildcardTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3id Tff7b72=Tff7b72= T79c0ff0Tb4b4b4; Tb4b4b4}
Tb4b4b4}Tb4b4b4;
Te6edf3class Te6edf3RegionMap Tb4b4b4{
Te6edf3TransportKeyStoreTff7b72* Te6edf3_storeTb4b4b4;
Tffa657uint16_t Te6edf3next_idTb4b4b4, Te6edf3home_idTb4b4b4, Te6edf3default_idTb4b4b4;
Tffa657uint16_t Te6edf3num_regionsTb4b4b4;
Te6edf3RegionEntry Te6edf3regionsTb4b4b4[Te6edf3MAX_REGION_ENTRIESTb4b4b4]Tb4b4b4;
Te6edf3RegionEntry Te6edf3wildcardTb4b4b4;
Tffa657void Td2a8ffprintChildRegionsTb4b4b4(Tffa657int Te6edf3indentTb4b4b4, Tff7b72const Te6edf3RegionEntryTff7b72* Te6edf3parentTb4b4b4, Te6edf3StreamTff7b72& Te6edf3outTb4b4b4) Tff7b72constTb4b4b4;
Te6edf3publicTff7b72:
Te6edf3RegionMapTb4b4b4(Te6edf3TransportKeyStoreTff7b72& Te6edf3storeTb4b4b4)Tb4b4b4;
Tff7b72static Tffa657bool Td2a8ffis_name_charTb4b4b4(Tffa657uint8_t Te6edf3cTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffloadTb4b4b4(Te6edf3FILESYSTEMTff7b72* Te6edf3_fsTb4b4b4, Tff7b72const Tffa657charTff7b72* Te6edf3pathTff7b72=Tffa657NULLTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffsaveTb4b4b4(Te6edf3FILESYSTEMTff7b72* Te6edf3_fsTb4b4b4, Tff7b72const Tffa657charTff7b72* Te6edf3pathTff7b72=Tffa657NULLTb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72* Td2a8ffputRegionTb4b4b4(Tff7b72const Tffa657charTff7b72* Te6edf3nameTb4b4b4, Tffa657uint16_t Te6edf3parent_idTb4b4b4, Tffa657uint16_t Te6edf3id Tff7b72= T79c0ff0Tb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72* Td2a8fffindMatchTb4b4b4(Te6edf3meshTff7b72:Tff7b72:Te6edf3PacketTff7b72* Te6edf3packetTb4b4b4, Tffa657uint8_t Te6edf3maskTb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72& Td2a8ffgetWildcardTb4b4b4(Tb4b4b4) Tb4b4b4{ Tff7b72return Te6edf3wildcardTb4b4b4; Tb4b4b4}
Te6edf3RegionEntryTff7b72* Td2a8fffindByNameTb4b4b4(Tff7b72const Tffa657charTff7b72* Te6edf3nameTb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72* Td2a8fffindByNamePrefixTb4b4b4(Tff7b72const Tffa657charTff7b72* Te6edf3prefixTb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72* Td2a8fffindByIdTb4b4b4(Tffa657uint16_t Te6edf3idTb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72* Td2a8ffgetHomeRegionTb4b4b4(Tb4b4b4)Tb4b4b4; T8b949e// NOTE: can be NULL
Tffa657void Td2a8ffsetHomeRegionTb4b4b4(Tff7b72const Te6edf3RegionEntryTff7b72* Te6edf3homeTb4b4b4)Tb4b4b4;
Te6edf3RegionEntryTff7b72* Td2a8ffgetDefaultRegionTb4b4b4(Tb4b4b4)Tb4b4b4; T8b949e// NOTE: can be NULL
Tffa657void Td2a8ffsetDefaultRegionTb4b4b4(Tff7b72const Te6edf3RegionEntryTff7b72* Te6edf3defTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffremoveRegionTb4b4b4(Tff7b72const Te6edf3RegionEntryTff7b72& Te6edf3regionTb4b4b4)Tb4b4b4;
Tffa657bool Td2a8ffclearTb4b4b4(Tb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffresetFromTb4b4b4(Tff7b72const Te6edf3RegionMapTff7b72& Te6edf3srcTb4b4b4) Tb4b4b4{ Te6edf3num_regions Tff7b72= T79c0ff0Tb4b4b4; Te6edf3next_id Tff7b72= Te6edf3srcTb4b4b4.Te6edf3next_idTb4b4b4; Tb4b4b4}
Tffa657int Td2a8ffgetCountTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Te6edf3num_regionsTb4b4b4; Tb4b4b4}
Tff7b72const Te6edf3RegionEntryTff7b72* Td2a8ffgetByIdxTb4b4b4(Tffa657int Te6edf3iTb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Tff7b72&Te6edf3regionsTb4b4b4[Te6edf3iTb4b4b4]Tb4b4b4; Tb4b4b4}
Tff7b72const Te6edf3RegionEntryTff7b72* Td2a8ffgetRootTb4b4b4(Tb4b4b4) Tff7b72const Tb4b4b4{ Tff7b72return Tff7b72&Te6edf3wildcardTb4b4b4; Tb4b4b4}
Tffa657int Td2a8ffexportNamesToTb4b4b4(Tffa657char Tff7b72*Te6edf3destTb4b4b4, Tffa657int Te6edf3max_lenTb4b4b4, Tffa657uint8_t Te6edf3maskTb4b4b4, Tffa657bool Te6edf3invert Tff7b72= Tffa657falseTb4b4b4)Tb4b4b4;
Tffa657int Td2a8ffgetTransportKeysForTb4b4b4(Tff7b72const Te6edf3RegionEntryTff7b72& Te6edf3srcTb4b4b4, Te6edf3TransportKey Te6edf3destTb4b4b4[Tb4b4b4]Tb4b4b4, Tffa657int Te6edf3max_numTb4b4b4)Tb4b4b4;
Tffa657void Td2a8ffexportToTb4b4b4(Te6edf3StreamTff7b72& Te6edf3outTb4b4b4) Tff7b72constTb4b4b4;
Tffa657size_t Td2a8ffexportToTb4b4b4(Tffa657char Tff7b72*Te6edf3destTb4b4b4, Tffa657size_t Te6edf3max_lenTb4b4b4) Tff7b72constTb4b4b4;
Tb4b4b4}Tb4b4b4;
Served by rngit 1.5.0 - Generated in 0.12s